package modelo;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

import org.hibernate.criterion.Restrictions;

import dao.imp.Base_DatosDAO;

public class Venta {
	private int numero;
	private Date fecha;
	private String rif_empresa;
	private char estatus;
	private Cliente cliente;
	
	public Venta() {
		super();
	}

	public Venta(int numero, Date fecha, String rif_empresa, Cliente cliente, char estatus) {
		super();
		this.numero = numero;
		this.fecha = fecha;
		this.rif_empresa = rif_empresa;
		this.estatus = estatus;
		this.cliente = cliente;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public String getRif_empresa() {
		return rif_empresa;
	}

	public void setRif_empresa(String rif_empresa) {
		this.rif_empresa = rif_empresa;
	}

	public char getEstatus() {
		return estatus;
	}

	public void setEstatus(char estatus) {
		this.estatus = estatus;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	
	public List<Detalle_Venta> getDetalle_venta(){
		Base_DatosDAO conexion = new Base_DatosDAO();
		List<Detalle_Venta> detalles = conexion.findBySQLQuery("select * from detalle_venta where venta='"+Integer.toString(this.numero)+"'", "detalle", Detalle_Venta.class);
		return detalles;
	}
	
	public double MontoTotal_Venta() throws ParseException{
		List<Detalle_Venta> detalles = this.getDetalle_venta();
		double total = 0;
		for (int i=0;i<detalles.size();i++){
			total+=detalles.get(i).MontoDetalle_Venta();
		}
		return total;
	}
	
	public JRDataSource getDetalles_ds(){
		return new JRBeanCollectionDataSource(getDetalle_venta());
	}
	
	public double getMonto_venta() throws ParseException{
		return MontoTotal_Venta();
	}
}
